# -*- coding: utf-8 -*- 

'''
Created on 2018年8月29日

@author: Dergen Lee

    from https://keras.io/getting-started/sequential-model-guide/

'''

from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout,Activation
from tensorflow.keras.optimizers import SGD

import numpy as np

# Generate dummy data
x_train=np.random.random((1000,20))
y_train=keras.utils.to_categorical(np.random.randint(10,size=(1000,1)),num_classes=10)

x_test=np.random.random((100,20))
y_test=keras.utils.to_categorical(np.random.randint(10,size=(100,1)),num_classes=10)

model=Sequential()

model.add(Dense(64, activation="relu", input_dim=20))
model.add(Dropout(0.5))
model.add(Dense(64,activation="relu"))
model.add(Dropout(0.5))
model.add(Dense(10,activation="softmax"))

sgd=SGD(lr=0.01,decay=1e-6,momentum=0.9,nesterov=True)

model.compile(optimizer=sgd,
              loss="categorical_crossentropy",
              metrics=['accuracy'])

model.fit(x_train, y_train, 
          batch_size=128, 
          epochs=100)
score=model.evaluate(x_test, y_test, batch_size=128)

print(score)
